﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>DM_SETEDITPOSITION</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../styles/styles.css">
<script language="javascript" src='../../links.js' type="text/javascript"></script>
</head>
<body>

<h1>DM_SETEDITPOSITION</h1>
<div class=navbar>
<a href="../../index.html">главная</a> |
<a href="index_dm.html">сообщения</a> |
<a href="../index.html">Dialog API</a>
</div>

<div class=shortdescr>
Сообщение <code>DM_SETEDITPOSITION</code> посылается обработчику диалога для установки позиции и состояния курсора в строках редактирования диалога.
</div>

<h3>Param1</h3>
<div class=descr>
ID элемента диалога.
</div>

<h3>Param2</h3>
<div class=descr>
Указатель на структуру <a href="../../structures/editorsetposition.html">EditorSetPosition</a>.
</div>

<h3>Return</h3>
<div class=descr>
<code>FALSE</code> - указанный ID элемента не является строковым редактором.<br>
<code>TRUE</code> - позиция курсора установлена.
</div>

<h3>Элементы</h3>
<div class=descr>
<table class="cont">
<tr class="cont"><th class="cont" width="40%">Элемент</th><th class="cont" width="60%">Описание</th></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../controls/di_combobox.html">DI_COMBOBOX</a></td>
<td class="cont" width="60%">комбинированный список</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../controls/di_edit.html">DI_EDIT</a></td>
<td class="cont" width="60%">строка ввода</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../controls/di_fixedit.html">DI_FIXEDIT</a></td>
<td class="cont" width="60%">поле ввода фиксированного размера</td></tr>
<tr class="cont"><td class="cont" width="40%"><a href="../controls/di_pswedit.html">DI_PSWEDIT</a></td>
<td class="cont" width="60%">поле ввода пароля</td></tr>
</table>
</div>

<h3>Замечания</h3>
<div class=descr>
</div>

<h3>Пример</h3>
<div class=descr>
Пример функции поддержки выделения мышью в строках ввода в плагине "Visual renaming files"
<pre class="code">
static void MouseSelect(HANDLE hDlg, DWORD idStr, DWORD dwMousePosX)
{
  SMALL_RECT dlgRect, itemRect;
  Info.SendDlgMessage(hDlg, DM_GETDLGRECT, 0, &amp;dlgRect);
  Info.SendDlgMessage(hDlg, DM_GETITEMPOSITION, idStr, &amp;itemRect);

  EditorSetPosition esp={sizeof(EditorSetPosition)};
  Info.SendDlgMessage(hDlg, DM_GETEDITPOSITION, idStr, &amp;esp);

  int length=Info.SendDlgMessage(hDlg, DM_GETTEXT, idStr, 0);
  int CurPos=dwMousePosX - ( dlgRect.Left + itemRect.Left );

  if ( dwMousePosX &lt;= ( dlgRect.Left + itemRect.Left ) &amp;&amp; esp.LeftPos &gt; 0 )
    esp.LeftPos-=1;
  else if ( dwMousePosX &gt;= ( dlgRect.Left + itemRect.Right ) &amp;&amp; CurPos+esp.LeftPos &lt; length )
    esp.LeftPos+=1;

  if (CurPos+esp.LeftPos &lt; 0)
    CurPos=0;
  else if (CurPos+esp.LeftPos &gt; length)
    CurPos=length;
  else
    CurPos+=esp.LeftPos;

  esp.CurPos=esp.CurTabPos=CurPos;

  if (bStartSelect)
  {
    StartPosX=CurPos;
    bStartSelect=false;
  }

  EditorSelect es={sizeof(EditorSelect)};
  es.BlockType=BTYPE_COLUMN;
  es.BlockStartLine=es.BlockHeight=0;

  if (CurPos &gt; StartPosX)
  {
    es.BlockStartPos=StartPosX;
    es.BlockWidth=CurPos-StartPosX;
  }
  else
  {
    es.BlockStartPos=CurPos;
    es.BlockWidth=StartPosX-CurPos;
  }

  Info.SendDlgMessage(hDlg, DM_SETSELECTION, idStr, &amp;es);
  Info.SendDlgMessage(hDlg, DM_SETEDITPOSITION, idStr, &amp;esp);
}
</pre>
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="../../service_functions/dialoginit.html">DialogInit</a>,
<a href="dm_getcursorpos.html">DM_GETCURSORPOS</a>,
<a href="dm_setcursorpos.html">DM_SETCURSORPOS</a>,
<a href="dm_geteditposition.html">DM_GETEDITPOSITION</a>
</div>

</body>
</html>
